#pragma once

#include <memory.h>

#define BODY_COUNT 11

enum eBodies
{
	eMERCURY = 0,
	eVENUS = 1, 
	eEARTH = 2, 
	eMARS = 3,  
	eJUPITER = 4,
	eSATURN = 5,
	eURANUS = 6,
	eNEPTUNE = 7,
	ePLUTO = 8,
	eMOON = 9, 
	eSUN = 10,
};

struct SBody
{
	SBody() 
	{
		GM = 0.0;
		memset(x, 0, sizeof(x));
		memset(v, 0, sizeof(v));
	}

	double GM;		// [au**3/day**2]
	double x[3];	// au
	double v[3];	// au/day
};

struct AllBodies
{
	SBody bodies[BODY_COUNT];
};

class IGetCoord
{
public:
	virtual bool GetCoord(double date, bool bBaryCenter, AllBodies & coords, bool bGetVelocity) = 0;
};

